package com.zz.admin.internationalManagement.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zz.admin.internationalManagement.dto.I18nConfigDto;
import com.zz.admin.internationalManagement.entity.I18nConfig;
import com.zz.common.base.dto.PageListResultDto;
import com.zz.common.base.param.QueryParam;
import java.util.List;
import java.util.Map;

/**
 * 国际化配置表 服务接口
 * @author zhang.lei
 * @since 2025-07-13 14:12:57
 */
public interface I18nConfigService extends IService<I18nConfig>{

    /**
     * 分页查询
     *
     * @param i18nConfigDto 查询参数
     * @return PageListResultDto<I18nConfigDto>
     * @create: 2025-07-13 14:12:57
     * @author zhang.lei
     * @see
     * @since 1.0
     */
    PageListResultDto<I18nConfigDto> queryWithPage(I18nConfigDto i18nConfigDto, QueryParam queryParam);

    /**
     * 分页查询
     *
     * @param i18nConfigDto 查询参数
     * @return List<I18nConfigDto>
     * @create: 2025-07-13 14:12:57
     * @author zhang.lei
     * @see
     * @since 1.0
     */
    List<I18nConfigDto> queryWithNoPage(I18nConfigDto i18nConfigDto);

    /**
     * 根据id查询
     *
     * @param id 主键
     * @return I18nConfigDto
     * @create: 2025-07-13 14:12:57
     * @author zhang.lei
     * @see
     * @since 1.0
     */
     I18nConfigDto queryById(String id);

    /**
     * 根据主键查询单表数据
     *
     * @param id 主键
     * @return List<I18nConfigDto>
     * @create: 2025-07-13 14:12:57
     * @author zhang.lei
     * @see
     * @since 1.0
     */
    List<I18nConfigDto> queryByIds(List<String> id);

    /**
     * 保存
     *
     * @param i18nConfigDto 对象
     * @return I18nConfigDto
     * @create: 2025-07-13 14:12:57
     * @author zhang.lei
     * @see
     * @since 1.0
     */
    I18nConfigDto save(I18nConfigDto i18nConfigDto);

    /**
     * 批量保存
     *
     * @param i18nConfigDtos 对象
     * @return List<I18nConfigDto>
     * @create: 2025-07-13 14:12:57
     * @author zhang.lei
     * @see
     * @since 1.0
     */
    List<I18nConfigDto> saveBatch(List<I18nConfigDto> i18nConfigDtos);

    /**
     * 修改
     *
     * @param i18nConfigDto 对象
     * @return I18nConfigDto
     * @create: 2025-07-13 14:12:57
     * @author zhang.lei
     * @see
     * @since 1.0
     */
    I18nConfigDto modify(I18nConfigDto i18nConfigDto);

    /**
     * 批量修改
     *
     * @param i18nConfigDtos 对象
     * @return List<I18nConfigDto>
     * @create: 2025-07-13 14:12:57
     * @author zhang.lei
     * @see
     * @since 1.0
     */
    List<I18nConfigDto> modifyBatch(List<I18nConfigDto> i18nConfigDtos);

    List<I18nConfigDto> saveOrModifyBatch(List<I18nConfigDto> i18nConfigDtos);

    void trueDeleteBatchWithLogic(List<I18nConfigDto> i18nConfigDtos);

    /**
     * 删除
     *
     * @param id 主键
     * @create: 2025-07-13 14:12:57
     * @author zhang.lei
     * @see
     * @since 1.0
     */
     void delete(String id);

    /**
     * 删除
     *
     * @param ids 主键
     * @create: 2025-07-13 14:12:57
     * @author zhang.lei
     * @see
     * @since 1.0
     */
    void deleteBatch(List<String> ids);

    /**
     * 插入
     *
     * @param i18nConfigDto 对象
     * @return I18nConfigDto
     * @create: 2025-07-13 14:12:57
     * @author zhang.lei
     * @see
     * @since 1.0
     */
    I18nConfigDto insert(I18nConfigDto i18nConfigDto);

    /**
     * 指定主键插入
     *
     * @param i18nConfigDto 对象
     * @return I18nConfigDto
     * @create: 2025-07-13 14:12:57
     * @author zhang.lei
     * @see
     * @since 1.0
     */
    I18nConfigDto insertWithId(I18nConfigDto i18nConfigDto);


    Map<String, Map<String, Object>> queryByLocale(String locale);
}
